package com.demo.java.OD451_500.OD480;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【正则表达式替换(E卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146407432
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 获取输入字符串并转换为字符数组
        replaceStr(in.nextLine().toCharArray());
    }

    // 替换字符串中的下划线
    public static void replaceStr(char[] str) {
        int count = 0; // 用于标记是否在方括号内
        String result = ""; // 存储替换后的结果字符串

        // 遍历字符串
        for (int i = 0; i < str.length; i++) {
            // 如果遇到左方括号，进入方括号内
            if (str[i] == '[') {
                count++;
            }
            // 如果遇到右方括号，退出方括号内
            else if (str[i] == ']') {
                count--;
            }

            // 如果不在方括号内，且当前字符是下划线，则进行替换
            if (count == 0) {
                if (str[i] == '_' && (i == 0 || str[i - 1] != '\\')) {
                    result += "(^|$|[,+])"; // 替换下划线
                } else {
                    result += str[i]; // 否则保留原字符
                }
            } else {
                result += str[i]; // 如果在方括号内，直接保留字符
            }
        }
        // 输出替换后的字符串
        System.out.println(result);
    }
}